Page({
  data: {
    selectedPayment: 'WECHAT_PAY', // 默认选中微信支付
    cart: [], // 购物车数据
    totalPrice: 0, // 总价
    productOrderNo: '', // 订单号
  },

  loadOrderDetails(orderId) {
    wx.request({
      url: `http://localhost:9008/order-service/manage/order/getByOrderNo/${orderId}`,
      method: 'GET',
      success: res => {
        if (res.statusCode === 200) {
          const orderData = res.data.data;
          // 格式化单价
          const formattedCart = orderData.orderDetailVOList.map(item => ({
            ...item,
            formattedPrice: (item.price / 100).toFixed(2)
          }));

          this.setData({
            totalPrice: parseFloat(orderData.amount).toFixed(2)/100, // 确保总价也保留两位小数
            productOrderNo: orderData.orderNumber,
            cart: formattedCart,
          });

          console.log(this.data.cart);
        } else {
          wx.showToast({
            title: '加载失败，请重试',
            icon: 'none'
          });
        }
      },
      fail: () => {
        wx.showToast({
          title: '网络请求失败',
          icon: 'none'
        });
      }
    });
  },

  // 请求支付
  requestPayment: function () {
    const productAppId = 'order-service'; // 填写你的业务系统标识
    const tradingChannel = this.data.selectedPayment; // 获取选中的支付渠道

    // 根据选中的支付渠道设置不同的enterpriseId
    let enterpriseId;
    if (tradingChannel === 'WECHAT_PAY') {
      enterpriseId = 1561414331;
    } else {
      enterpriseId = 2088241317544335;
    }

    wx.request({
      url: 'http://localhost:9019/payment-service/inner/native',
      method: 'POST',
      header: {
        'content-type': 'application/json' // 设置请求的 content-type 为 json
      },
      data: JSON.stringify({ // 将数据转换为json格式
        enterpriseId: enterpriseId,
        changeChannel: false,
        memo: "用户购买",
        productAppId: productAppId,
        productOrderNo: this.productOrderNo,
        tradingChannel: tradingChannel,
        // 可以根据需求添加其他必要参数
        tradingAmount: 0.01,
        // tradingAmount: this.data.totalPrice * 100 // 后端可能需要整数形式的价格，单位为分
      }),
      success: (res) => {
        if (res.statusCode === 200) {
          console.log(res.data.qrCode)
          const qrCodeUrl = res.data.qrCode;
          const selectedPayment = this.data.selectedPayment;
          wx.navigateTo({
            url: `/pages/indexs/pay/paymentQrCode/paymentQrCode?url=${encodeURIComponent(qrCodeUrl)}&selectedPayment=${selectedPayment}&productOrderNo=${this.productOrderNo}`
          });
        } else {
          // 处理错误情况
          console.error('支付请求失败', res);
        }
      },
      fail: (err) => {
        // 请求失败的处理
        console.error('请求失败', err);
      }
    });
  },

  onLoad: function (options) {
    if (options.orderNumber) {
      const orderNumber = decodeURIComponent(options.orderNumber);
      this.loadOrderDetails(orderNumber);
      this.productOrderNo = orderNumber;
    }
    if (options.cartData) {
      try {
        // 解码并解析JSON字符串
        const cartData = JSON.parse(decodeURIComponent(options.cartData));
        this.productOrderNo = options.productOrderNo;
        console.log('获取到价格：'+options.totalPrice)
        // 格式化单价
        const formattedCart = cartData.map(item => ({
          ...item,
          formattedPrice: (item.price / 100).toFixed(2)
        }));

        // 设置购物车数据
        this.setData({
          cart: formattedCart,
          totalPrice: options.totalPrice // 计算总价
        });
      } catch (error) {
        console.error('解析购物车数据失败:', error);
      }
    }

    console.log(this.data.cart)
  },

  // 计算购物车总价
  calculateTotalPrice(cart) {
    let totalPrice = 0;
    cart.forEach(item => {
      totalPrice += (item.price * item.quantity) / 100; // 计算总价
    });
    return totalPrice.toFixed(2); // 确保总价保留两位小数
  },

  selectPayment: function (e) {
    const payment = e.currentTarget.dataset.payment;
    this.setData({
      selectedPayment: payment
    });
  },

  // 绑定支付按钮点击事件
  bindGoPaymentTap: function () {
    this.requestPayment();
  }
});